/*
 * 1.00 2012/09/19
 *
 * Copyright (c) 2012 Motch_bs
 * All rights reserved.
 *
 * このソフトウェアは，Motch_bsに所有される機密情報である。
 * これらの機密情報を漏洩してはならず，Motch_bs の意図する
 * 認可の元においてこれを使用すべし。
 */
package jp.co.ufp.sevendaystask.listners;

import jp.co.ufp.sevendaystask.Main;
import jp.co.ufp.sevendaystask.logics.Logic015;
import jp.co.ufp.sevendaystask.storage.QueryManager;

import org.achartengine.GraphicalView;
import org.achartengine.model.SeriesSelection;

import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;

/**
 * 初期画面のクリックリスナー
 * 
 * @author Motch_bs
 * 
 */
public class MainOnClickListener implements OnClickListener {

    /** リスナー登録元クラス */
    private Main main;

    /** グラフVIEW */
    private GraphicalView chartView;

    /** 選択オブジェクト */
    private SeriesSelection seriesSelection;

    /** データベースヘルパー */
    private QueryManager queryManager;

    /**
     * @param pMain
     * @param pChartView
     */
    public MainOnClickListener(Main pMain, GraphicalView pChartView) {
	super();
	this.main = pMain;
	this.chartView = pChartView;
    }

    @Override
    public void onClick(
	View v) {
	seriesSelection = chartView.getCurrentSeriesAndPoint();
	if (seriesSelection == null) {
	    // Toast.makeText(main, "No chart element was clicked",
	    // Toast.LENGTH_SHORT).show();
	}
	else {
	    int index = seriesSelection.getPointIndex();
	    String sIndex = Integer.valueOf(index).toString();
	    String dataid = main.chartIndexes.get(sIndex);
	    logging(dataid);
	    // データベースをオープンする
	    queryManager = new QueryManager(main);
	    Logic015 logic015 = new Logic015(main, queryManager);
	    Intent intntEdit = logic015.getIntentFromDB(dataid);
	    main.startActivity(intntEdit);
	}

    }

    /**
     * 開発用ログ出力
     * 
     * @param dataid
     */
    private void logging(
	String dataid) {
	StringBuffer logStatus = new StringBuffer();
	logStatus.append("Chart element data point index ");
	logStatus.append(seriesSelection.getPointIndex());
	logStatus.append(" was clicked point value=");
	logStatus.append(seriesSelection.getValue());
	logStatus.append(". And data-id is ");
	logStatus.append(dataid);
	// Toast.makeText(main, logStatus, Toast.LENGTH_SHORT).show();
	Log.d("MainOnClickListener", logStatus.toString());
    }
}
